/*
 * @Descripttion: 
 * @version: 
 * @Author: 尹伊
 * @Date: 2019-07-12 09:10:43
 * @LastEditors: 尹伊
 * @LastEditTime: 2020-05-25 10:42:47
 */
/**
 *  请求，响应封装，根据具体状态码来修改
 */
import axios from 'axios'
import querystring from 'querystring'
axios.defaults.withCredentials = true
const service = axios.create({
  baseURL: '', // api的base_url
  timeout: 30000, // 请求超时
  transformRequest: [data => {
    // 处理数据格式
    // return querystring.stringify(data)
    return data
  }]
})

const errorHandle = (status, other) => {
  switch (status) {
    // 401: 未登录状态，跳转到登录页
    case 401:
      break
      // token 过期，跳转到登陆页
    case 403:
      break
    case 404:
      alert('请求的资源不存在')
      break
    default:
      console.log(other)
  }
}
// request拦截器
service.interceptors.request.use(config => {
  console.log(config)
  // 加载loading
  return config
}, error => {
  Promise.reject(error)
})

// response拦截器
service.interceptors.response.use(response => {
  // 取消loading
  return response.data
  // 请求成功
  // response.status === 200 ? Promise.resolve(response) : Promise.reject(response)
}, error => {
  const {
    response
  } = error
  if (response) {
    // 请求已发出，但是不在2xx的范围
    errorHandle(response.status, response.data.message)
    return Promise.reject(response)
  } else {
    // 处理断网的情况
  }
})

export default service
